/**
 * Object ECombo()
 * 
 * @super AElement
 * @constructor
 * @author Hermann D. Schimpf <hschimpf@gschimpf.com>
 * @license http://opensource.org/licenses/gpl-2.0.php
 * @date 2010-07-30
 * @version 0.1.0
 */
function ECombo() {
	/* ejecutamos el constructor */
	return this.__construct();
}
/* heredamos las propiedades */
ECombo.prototype = new AElement;
/**
 * Constructor de la clase
 */
ECombo.prototype.__construct = function() {
	/* llamamos al metodo constructor del padre */
	var obj = this._construct('SELECT');
	/* creamos un puntero al objeto actual */
	var me = this;
	/* agregamos el evento onChange */
	obj.addEventListener('change', function() {
		/* actualizamos */
		me.actionPerformed('change');
	}, false);
	/* agregamos una opcion vacia */
	obj.addOption(null, null);
	/* retornamos el objeto creado */
	return obj;
};
/**
 * Retorna la definicion de la clase
 * 
 * @return String Definicion de la clase
 */
ECombo.prototype.toString = function() {
	/* retornamos la definicion de la clase en un string */
	return "[ECombo " + this.getName() | this.getID() + "]";
};
/**
 * Retorna el elemento seleccionado
 * 
 * @return EOption Elemento seleccionado
 */
ECombo.prototype.getSelected = function() {
	/* recorremos las opciones */
	for ( var i in this.getObject().options) {
		/* verificamos si es el que esta seleccionado */
		if (this.getObject().options[i].selected === true)
			/* retornamos el elemento */
			return this.getObject().options[i];
	}
	/* si llegamos retornamos false */
	return false;
};
/**
 * Agrega una opcion al combo
 * 
 * @param String Valor para la opcion
 * @param String Texto para la opcion
 */
ECombo.prototype.addOption = function(value, text) {
	/* creamos el elemento Option */
	var opt = new EOption;
	/* seteamos el value */
	opt.setValue(value);
	/* seteamos el texto */
	opt.setText(text);
	/* agregamos la opcion localmente */
	this.add(opt, null);
	/* retornamos teue */
	return true;
};
/**
 * Elimina una opcion del combo
 * 
 * @param Integer Posicion a eliminar
 * @return Boolean True si se elimino la opcion
 */
ECombo.prototype.delOption = function(pos) {
	/* verificamos si existe la opcion */
	if (pos * 1 != NaN && this.options[pos] !== undefined && pos > 0) {
		/* eliminamos la opcion del combo */
		this.remove(pos);
		/* retornamos teue */
		return true;
	}
	/* retornamos false */
	return false;
};
/**
 * Elimina una opcion del combo
 * 
 * @param String Valor de la opcion a eliminar
 * @return Boolean True si se elimino la opcion
 */
ECombo.prototype.delOptionValue = function(value) {
	/* recorremos las opciones */
	for ( var i in this.options)
		/* verificamos si es la opcion a eliminar */
		if (i * 1 != NaN && this.options[i].value == value) {
			/* eliminamos la opcion */
			this.remove(i);
			/* retornamos teue */
			return true;
		}
	/* retornamos false */
	return false;
};